﻿#region License
/* Copyright (C) 2009 Tim Coulter
 * 
 * This file is part of ExtremeML.
 * 
 * ExtremeML is free software: you can redistribute
 * it and/or modify it under the terms of the GNU General Public
 * License, as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 * 
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
 * the GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see http://www.gnu.org/licenses/.
*/
#endregion

using System.Xml;
using System.Xml.Linq;

namespace ExtremeML.Sdk.Vml
{
	/// <summary>
	/// Stores namespace definitions.
	/// </summary>
	internal static class Utility
	{
		private static XmlNamespaceManager _manager;

		public static readonly XNamespace V = "urn:schemas-microsoft-com:vml";
		public static readonly XNamespace O = "urn:schemas-microsoft-com:office:office";
		public static readonly XNamespace X = "urn:schemas-microsoft-com:office:excel";

		/// <summary>
		/// Gets the <see cref="XmlNamespaceManager"/> that is shared by all XPath operations.
		/// </summary>
		public static XmlNamespaceManager Manager
		{
			get
			{
				if (_manager == null)
				{
					_manager = new XmlNamespaceManager(new NameTable());
					_manager.AddNamespace("x", X.NamespaceName);
					_manager.AddNamespace("v", V.NamespaceName);
					_manager.AddNamespace("o", O.NamespaceName);
				}

				return _manager;
			}
		}
	}
}